package util;

import java.util.Random;

import util.exceptions.TaxaZeroException;

public class GeradorAmostra {

	public final static long SEED = (new Random()).nextInt();
	private final static Random RANDOM = new Random(SEED);
	
	/**
	 * Gera um número da distribuição exponencial
	 * 
	 * @param taxa
	 * @return
	 * @throws TaxaZeroException
	 */
	public static double exponencial(final double taxa) throws TaxaZeroException {
		if (taxa == 0) {
			throw new TaxaZeroException();
		}
		
		// usado para "simular" o caso da taxa = infinito
		if (taxa < 0) {
			return 0;
		}
		
		final double u = RANDOM.nextDouble();
		return -Math.log(u) / taxa;
	}
	
}
